// 处理打开新标签页并采集数据的请求
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
    if (message.type === 'OPEN_AND_COLLECT') {
        handleOpenAndCollect(message.url, sendResponse);
        return true; // 保持消息通道打开
    }
});

async function handleOpenAndCollect(url, sendResponse) {
    let tab = null;
    try {
        // 打开新标签页
        tab = await chrome.tabs.create({ url: url, active: false });

        // 等待页面加载完成
        await new Promise(resolve => {
            chrome.tabs.onUpdated.addListener(function listener(tabId, info) {
                if (tabId === tab.id && info.status === 'complete') {
                    chrome.tabs.onUpdated.removeListener(listener);
                    resolve();
                }
            });
        });

        // 等待2秒确保页面完全加载
        await new Promise(resolve => setTimeout(resolve, 2000));

        // 在新标签页中执行脚本采集好评率
        const [result] = await chrome.scripting.executeScript({
            target: { tabId: tab.id },
            func: () => {
                // 尝试多种可能的选择器来获取好评率
                const selectors = [
                    '.item-user-info-label--NLTMHARN',
                    '[class*="item-user-info-label"]',  // 模糊匹配class名
                    '[class*="user-info-label"]'        // 更模糊的匹配
                ];
                
                for (const selector of selectors) {
                    const elements = document.querySelectorAll(selector);
                    for (const element of elements) {
                        const text = element.textContent.trim();
                        // 检查文本内容是否包含百分号或"好评"字样
                        if (text.includes('%') || text.includes('好评')) {
                            return text;
                        }
                    }
                }
                return ''; // 如果没找到，返回空字符串
            }
        });

        // 返回采集到的好评率
        sendResponse({ rating: result.result });
    } catch (error) {
        console.error('采集好评率时出错:', error);
        sendResponse({ rating: '' });
    } finally {
        // 确保标签页被关闭
        if (tab) {
            try {
                await chrome.tabs.remove(tab.id);
            } catch (e) {
                console.error('关闭标签页时出错:', e);
            }
        }
    }
} 